#pragma once

#include <string>
#include <vector>
#include <map>
#include <Windows.h>
#include <cwchar>
#include <wchar.h>
class CAction
{
public:
    CAction();
    virtual ~CAction();

    enum Platform : DWORD{
        Platform_Node = 0,
        Platform_x86 = 1,
        Platform_x64 = 2,
        Platform_All = 3,
    };

    virtual void SetAttribute(LPCTSTR strKey, LPCTSTR strValue);
    virtual int Add(CAction* pAction);
    bool DoAction();
protected:
    virtual bool doit() = 0;

protected:
    std::vector<CAction*> m_vecAction;
    std::wstring m_strVersion;
    CAction* m_pParent;
    DWORD m_PaltForm;
    BOOL m_bRevert;
};